Load the necessary packages.
library(Seurat)
library(magrittr)
library(patchwork)
# Set directory and sample names
### Sample ID
sample <- params$sample_name
dir_in <- paste0("/gpfs/gibbs/pi/fan/sb2723/GBM_story/RNA/03.gen4_rds_20240916/", sample, "/")
list.files(dir_in) # Should show *_gen4_01_original_on_tissue.rds and *_gen4_02_noMT_on_tissue.rds
## [1] "R1110C_gen4_01_original_on_tissue.rds"
## [2] "R1110C_gen4_01_original.rds"
## [3] "R1110C_gen4_02_noMT_on_tissue.rds"
## [4] "R1110C_gen4_02_noMT.rds"
dir_out <- paste0("/gpfs/gibbs/pi/fan/sb2723/GBM_story/RNA/04.rds_gen4_normalized_20240916/", sample, "/")
if (!dir.exists(dir_out)) {dir.create(dir_out, recursive = TRUE)}
samp_zUMIs_ontissue <- readRDS(paste0(dir_in, sample, '_gen4_01_original_on_tissue.rds'))
## NormalizeData() default is log normalization
samp_zUMIs_ontissue <- NormalizeData(object = samp_zUMIs_ontissue, normalization.method = "LogNormalize")
## Default parameters for find clusters and PCA reduction
samp_zUMIs_ontissue <- FindVariableFeatures(object = samp_zUMIs_ontissue)
samp_zUMIs_ontissue <- ScaleData(object = samp_zUMIs_ontissue)
samp_zUMIs_ontissue <- RunPCA(object = samp_zUMIs_ontissue)
samp_zUMIs_ontissue <- FindNeighbors(object = samp_zUMIs_ontissue, dims = 1:30)
samp_zUMIs_ontissue <- FindClusters(object = samp_zUMIs_ontissue)
## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
##
## Number of nodes: 2170
## Number of edges: 112789
##
## Running Louvain algorithm...
## Maximum modularity in 10 random starts: 0.6353
## Number of communities: 5
## Elapsed time: 0 seconds
samp_zUMIs_ontissue <- RunUMAP(object = samp_zUMIs_ontissue, dims = 1:30)
DefaultAssay(samp_zUMIs_ontissue) <- "Spatial"
p1 <- DimPlot(object = samp_zUMIs_ontissue, reduction = "umap")
p2 <- SpatialDimPlot(object = samp_zUMIs_ontissue, pt.size.factor = 2, image.alpha = 1)
png(filename=paste0(dir_out, sample, '_original_log_res0.8.png'), width = 8,height = 4,units = 'in',res=300)
plotA <- p1 | p2
plotA + plot_annotation(
title = paste0(sample, '_original: log normalization res0.8'),
)
dev.off()
## png
## 2
knitr::include_graphics(paste0(dir_out, sample, '_original_log_res0.8.png'))
## Save the RDS file for future check
saveRDS(samp_zUMIs_ontissue, file = paste0(dir_out, sample, '_gen4_03_original_on_tissue_log_res0.8.rds'))
## Default parameters for find clusters and PCA reduction
samp_zUMIs_ontissue <- SCTransform(samp_zUMIs_ontissue, assay = "Spatial") %>%
RunPCA() %>%
FindNeighbors(dims = 1:30) %>%
FindClusters(resolution = 0.8) %>% ## FindClusters() default res=0.8
RunUMAP(dims = 1:30)
## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
##
## Number of nodes: 2170
## Number of edges: 99516
##
## Running Louvain algorithm...
## Maximum modularity in 10 random starts: 0.6779
## Number of communities: 8
## Elapsed time: 0 seconds
DefaultAssay(samp_zUMIs_ontissue) <- "SCT"
p3 <- DimPlot(object = samp_zUMIs_ontissue, reduction = "umap")
p4 <- SpatialDimPlot(object = samp_zUMIs_ontissue, pt.size.factor = 2, image.alpha = 1)
png(filename=paste0(dir_out, sample, '_original_SCT_res0.8.png'), width = 8,height = 4,units = 'in',res=300)
plotB <- p3 | p4
plotB + plot_annotation(
title = paste0(sample, '_original: SCTransform res0.8'),
)
dev.off()
## png
## 2
knitr::include_graphics(paste0(dir_out, sample, '_original_SCT_res0.8.png'))
saveRDS(samp_zUMIs_ontissue, file = paste0(dir_out, sample, '_gen4_03_original_on_tissue_SCT_res0.8.rds'))
Load the Seurat object without mitochondrial genes starting with MT|AL|H3|EEF|RPS|RPL|FP|AC|ENSM|ENSG|RNA|RN5|RN7|RNU|RNV
samp_zUMIs_filtered_ontissue <- readRDS(paste0(dir_in, sample, '_gen4_02_noMT_on_tissue.rds'))
## NormalizeData() default is log normalization
samp_zUMIs_filtered_ontissue <- NormalizeData(object = samp_zUMIs_filtered_ontissue, normalization.method = "LogNormalize")
samp_zUMIs_filtered_ontissue <- FindVariableFeatures(object = samp_zUMIs_filtered_ontissue)
samp_zUMIs_filtered_ontissue <- ScaleData(object = samp_zUMIs_filtered_ontissue)
samp_zUMIs_filtered_ontissue <- RunPCA(object = samp_zUMIs_filtered_ontissue)
samp_zUMIs_filtered_ontissue <- FindNeighbors(object = samp_zUMIs_filtered_ontissue, dims = 1:30)
samp_zUMIs_filtered_ontissue <- FindClusters(object = samp_zUMIs_filtered_ontissue)
## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
##
## Number of nodes: 2170
## Number of edges: 114210
##
## Running Louvain algorithm...
## Maximum modularity in 10 random starts: 0.6215
## Number of communities: 7
## Elapsed time: 0 seconds
samp_zUMIs_filtered_ontissue <- RunUMAP(object = samp_zUMIs_filtered_ontissue, dims = 1:30)
DefaultAssay(samp_zUMIs_filtered_ontissue) <- "Spatial"
p5 <- DimPlot(object = samp_zUMIs_filtered_ontissue, reduction = "umap")
p6 <- SpatialDimPlot(object = samp_zUMIs_filtered_ontissue, pt.size.factor = 2, image.alpha = 1)
png(filename=paste0(dir_out, sample, '_noMT_log_res0.8.png'), width = 8,height = 4,units = 'in',res=300)
plotC <- p5 | p6
plotC + plot_annotation(
title = paste0(sample, '_noMT: log normalization res0.8'),
)
dev.off()
## png
## 2
knitr::include_graphics(paste0(dir_out, sample, '_noMT_log_res0.8.png'))
saveRDS(samp_zUMIs_filtered_ontissue, file = paste0(dir_out, sample, '_gen4_04_noMT_on_tissue_log_res0.8.rds'))
samp_zUMIs_filtered_ontissue <- SCTransform(samp_zUMIs_filtered_ontissue, assay = "Spatial") %>%
RunPCA() %>%
FindNeighbors(dims = 1:30) %>%
FindClusters(resolution = 0.8) %>% ## FindClusters() default res=0.8
RunUMAP(dims = 1:30)
## Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck
##
## Number of nodes: 2170
## Number of edges: 105107
##
## Running Louvain algorithm...
## Maximum modularity in 10 random starts: 0.6709
## Number of communities: 7
## Elapsed time: 0 seconds
DefaultAssay(samp_zUMIs_filtered_ontissue) <- "SCT"
p7 <- DimPlot(object = samp_zUMIs_filtered_ontissue, reduction = "umap")
p8 <- SpatialDimPlot(object = samp_zUMIs_filtered_ontissue, pt.size.factor = 2, image.alpha = 1)
png(filename=paste0(dir_out, sample, '_noMT_SCT_res0.8.png'), width = 8,height = 4,units = 'in',res=300)
plotC <- p7 | p8
plotC + plot_annotation(
title = paste0(sample, '_noMT: SCTransform res0.8'),
)
dev.off()
## png
## 2
knitr::include_graphics(paste0(dir_out, sample, '_noMT_SCT_res0.8.png'))
saveRDS(samp_zUMIs_filtered_ontissue, file = paste0(dir_out, sample, '_gen4_04_noMT_on_tissue_SCT_res0.8.rds'))